home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / COMMUNIC / BULLETIN / 0157.ZIP / ARC440.DOC < prev    next >
Text File  |  1985-10-30  |  29KB  |  648 lines

  1.                                           ARC
  2.         
  3.                                  File Archive Utility
  4.         
  5.         
  6.         (C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED
  7.         
  8.         
  9.         This file describes the ARC file utility, version 4.4, which was
  10.         created by System Enhancement Associates on 25 October 1985.
  11.         
  12.         ARC is the copyrighted property of System Enhancement Associates.  You 
  13.         are granted a limited license to use ARC, and to copy it and 
  14.         distribute it, provided that the following conditions are met: 
  15.         
  16.         1)  No fee may be charged for such copying and distribution.  
  17.         
  18.         2)  ARC may ONLY be distributed in its original, unmodified state.  
  19.         
  20.         
  21.         Any voluntary contributions for the use of this program will be 
  22.         appreciated, and should be sent to:
  23.         
  24.                              System Enhancement Associates
  25.                                      21 New Street
  26.                                    Wayne, NJ   07470
  27.         
  28.         If you are using ARC in a commercial environment, then the 
  29.         contribution is not voluntary.
  30.         
  31.         
  32.         A word about user supported software:
  33.         
  34.         The user supported software concept (usually referred to as 
  35.         "freeware") is an attempt to provide software at low cost.  The cost 
  36.         of offering a new product by conventional channels is staggering, and 
  37.         hence dissuades many independant authors and small companies from 
  38.         developing and promoting their ideas.  User supported software is an 
  39.         attempt to develop a new marketing channel, where products can be 
  40.         introduced at low cost.  
  41.         
  42.         If user supported software works, then everyone will benefit.  The 
  43.         user will benefit by receiving quality products at low cost, and by 
  44.         being able to "test drive" software thoroughly before purchasing it.  
  45.         The author benefits by being able to enter the commercial software 
  46.         arena without first needing large sources of venture capital.
  47.         
  48.         But it can only work with your support.  We're not just talking about 
  49.         ARC here, but about all user supported software.  If you find that you 
  50.         are still using a program after a couple of weeks, then pretty 
  51.         obviously it is worth something to you, and you should send in a 
  52.         contribution.
  53.         
  54.         
  55.         
  56.         And now, back to ARC:
  57.         
  58.         ARC is used to create and maintain file archives.  An archive is a 
  59.         group of files collected together into one file in such a way that the 
  60.         individual files may be recovered intact.  
  61.         
  62.         ARC is different from other archive and library utilities in that it 
  63.         automatically compresses the files being archived, so that the 
  64.         resulting archive takes up a minimum amount of space.  
  65.         
  66.         When ARC is used to add a file to an archive it analyzes the file to 
  67.         determine which of four storage methods will result in the greatest 
  68.         savings.  These four methods are: 
  69.         
  70.         1)  No compression; the file is stored intact.  
  71.         
  72.         2)  Repeated-character compression; repeated sequences of the same 
  73.             byte value are collapsed into a three-byte code sequence.  
  74.         
  75.         3)  Huffman squeezing; the file is compressed into variable length bit 
  76.             strings, similar to the method used by the SQ programs.  
  77.         
  78.         4)  Lempel-Zev compression;  the file is stored as a series of twelve 
  79.             bit codes which represent character strings, and which are created 
  80.             "on the fly".  
  81.         
  82.         Note that since one of the four methods involves no compression at 
  83.         all, the resulting archive entry will never be larger than the 
  84.         original file.  
  85.         
  86.         
  87.         
  88.                                        USING ARC
  89.                                        =========
  90.         
  91.         ARC is invoked with a command of the following format:
  92.         
  93.             ARC <x> <arcname> [<template> . . .]
  94.         
  95.         Where:
  96.         
  97.             <x> is an ARC command letter (see below), in either upper or lower 
  98.             case.  
  99.         
  100.             <arcname> is the name of the archive to act on, with or without an 
  101.             extension.  If no extension is supplied, then ".ARC" is assumed.  
  102.             The archive name may include path and drive specifiers.
  103.         
  104.             <template> is one or more file name templates.  The "wildcard" 
  105.             characters "*" and "?" may be used.  A file name template may only 
  106.             include a path or drive specifier if you are adding a file to an 
  107.             archive.  
  108.         
  109.         If ARC is invoked with no arguments (by typing "ARC", and pressing 
  110.         "enter"), then a brief command summary is displayed.
  111.         
  112.         
  113.                                      ARC COMMANDS
  114.                                      ============
  115.         
  116.         Following is a brief summary of the available ARC commands:
  117.         
  118.             a   = add files to archive
  119.             u   = update files in archive
  120.             m   = move files to archive
  121.             d   = delete files from archive
  122.             x,e = extract files from archive
  123.             r   = run files from archive
  124.             p   = copy files from archive to stdout
  125.             l   = list files in archive
  126.             v   = verbose listing of files in archive
  127.             t   = test archive integrity
  128.             c   = convert entry to new packing method
  129.             b   = retain backup copy of archive
  130.             w   = suppress warning messages
  131.             n   = suppress notes and comments
  132.         
  133.         These commands are explained in more detail below.
  134.         
  135.         
  136.         
  137.         ADDING FILES
  138.         ------------
  139.         
  140.         Files are added to an archive using the "A" (Add), "U" (Update), or 
  141.         "M" (Move) commands.  Add always adds the file.  Update differs from 
  142.         Add in that the file is only added if it is not already in the 
  143.         archive, or if it is newer that the corresponding entry in the 
  144.         archive.   Move differs from Add in that the source file is deleted 
  145.         once it has been added to the archive.  
  146.         
  147.         For example, if you wish to add a file named "TEST.DAT" to an archive 
  148.         named "MY.ARC", you would use a command of the form:
  149.         
  150.             ARC a my test.dat
  151.         
  152.         If you have an archive named "TEXT.ARC", and you wanted to add to it 
  153.         all of your files with an extension of ".TXT" which have been created 
  154.         or changed since they were last archived, then you would type: 
  155.         
  156.             ARC u text *.txt
  157.         
  158.         If you wanted to move all files in your current directory into an 
  159.         archive named "SUM.ARC", you could use a command of the form:
  160.         
  161.             ARC m sum *.*
  162.         
  163.         If you wanted to add all files with a ".C" extension, and all files 
  164.         named "STUFF" to an archive named "JUNK.ARC", you could type:
  165.         
  166.             ARC a junk *.c stuff.*
  167.         
  168.         
  169.         Archive entries are always maintained in alphabetic order.  Archive 
  170.         entries may not have duplicate names.  If you add a file to an archive 
  171.         that already contains a file by that name, then the existing entry in 
  172.         the archive is replaced.  Also, the archive itself and its backup will 
  173.         not be added.  
  174.         
  175.         You may also add a file which is in a directory other than your 
  176.         current directory.  For example, it is perfectly legal to type:
  177.         
  178.             ARC a junk c:\dustbin\stuff
  179.         
  180.         The A, U, and M commands are the ONLY commands which allow you to give 
  181.         a drive or path.  Also, you cannot add two files with the same name.  
  182.         In other words, if you have a file named "C:\DUSTBIN\STUFF.TXT" and 
  183.         another file named "C:\BUCKET\STUFF.TXT", then typing:
  184.         
  185.             arc a junk c:\dustbin\*.* c:\bucket\*.*
  186.         
  187.         will not work.
  188.         
  189.         
  190.         
  191.         DELETING FILES
  192.         --------------
  193.         
  194.         Archive entries are deleted with the "D" (Delete) command.  For 
  195.         example, if you had an archive named "JUNK.ARC", and you wished to 
  196.         delete all entries in it with a filename extension of ".C", you could 
  197.         type: 
  198.         
  199.             ARC d junk *.c
  200.         
  201.         
  202.         
  203.         EXTRACTING FILES
  204.         ----------------
  205.         
  206.         Archive entries are extracted with the "E" (Extract) and "X" (eXtract) 
  207.         commands.  For example, if you had an archive named "JUNK.ARC", and 
  208.         you wanted all files in it with an extension of ".TXT" or ".DOC" to be 
  209.         recreated on your disk, you could type:
  210.         
  211.             ARC x junk *.txt *.doc
  212.         
  213.         If you wanted to extract all of the files in an archive named 
  214.         "JUNK.ARC", you could simply type:
  215.         
  216.             ARC x junk
  217.         
  218.         Whatever method of file compression was used in storing the files is 
  219.         reversed, and uncompressed copies are created in the current 
  220.         directory.
  221.         
  222.         
  223.         
  224.         RUNNING FILES
  225.         -------------
  226.         
  227.         Archive entries may be run without being extracted by use of the "R" 
  228.         (Run) command.  For example, if you had an archive named "JUNK.ARC" 
  229.         which contained a file named "LEMON.COM", which you wished to run, you 
  230.         could type:
  231.         
  232.             ARC r junk lemon.com
  233.         
  234.         You can run any file from an archive which has an extension of ".COM", 
  235.         ".EXE", or ".BAT".  You cannot run interpretive BASIC programs from an 
  236.         archive, nor can you give arguments to a program you are running from 
  237.         an archive.
  238.         
  239.         In practice, the file to be run is extracted, run, and then deleted.  
  240.         All in all, this is a fairly useless command.
  241.         
  242.         
  243.         
  244.         PRINTING FILES
  245.         --------------
  246.         
  247.         Archive entries may be examined with the "P" (Print) command.  This 
  248.         works the same as the Extract command, except that the files are not 
  249.         created on disk.  Instead, the contents of the files are written to 
  250.         standard output.  For example, if you wanted to see the contents of 
  251.         every ".TXT" file in an archive named "JUNK.ARC", but didn't want them 
  252.         saved on disk, you could type:
  253.         
  254.             ARC p junk *.txt
  255.         
  256.         If you wanted them to be printed on your printer instead of on your 
  257.         screen, you could type:
  258.         
  259.             ARC p junk *.txt >prn
  260.         
  261.         
  262.         
  263.         LISTING ARCHIVE ENTRIES
  264.         -----------------------
  265.         
  266.         You can obtain a list of the contents of an archive by using the "L" 
  267.         (List) command or the "V" (Verbose list) command.  For example, to see 
  268.         what is in an archive named "JUNK.ARC", you could type: 
  269.         
  270.             ARC l junk
  271.         
  272.         If you are only interested in files with an extension of ".DOC", then 
  273.         you could type:
  274.         
  275.             ARC l junk *.doc
  276.         
  277.         
  278.         ARC prints a short listing of an archive's contents like this:
  279.         
  280.             Name          Length    Date
  281.             ============  ========  =========
  282.             ALPHA.TXT         6784  16 May 85
  283.             BRAVO.TXT         2432  16 May 85
  284.             COCO.TXT           256  16 May 85
  285.         
  286.         
  287.         "Name" is simply the name of the file.
  288.         
  289.         "Length" is the unpacked file length.  In other words, it is the 
  290.         number of bytes of disk space which the file would take up if it were 
  291.         extracted.
  292.         
  293.         "Date" is the date on which the file had last been modified, as of the 
  294.         time when it was added to the archive.
  295.         
  296.         
  297.         ARC prints a verbose listing of an archive's contents like this:
  298.         
  299.         Name       Length    Stowage    SF   Size now  Date       Time    CRC
  300.         =========  ========  ========  ====  ========  =========  ======  ====
  301.         ALPHA.TXT      6784  Squeezed   35%      4413  16 May 85  11:53a  8708
  302.         BRAVO.TXT      2432  Squeezed   41%      1438  16 May 85  11:53a  5BD6
  303.         COCO.TXT        256   Packed     5%       244  16 May 85  11:53a  3AFB
  304.         
  305.         
  306.         "Name", "Length", and "Date" are the same as for a short listing.
  307.         
  308.         "Stowage" is the compression method used.  The following compression 
  309.         methods are currently employed:
  310.         
  311.                --          No compression.
  312.              Packed        Runs of repeated byte values are collapsed.
  313.             Squeezed       Huffman squeeze technique employed.
  314.             Crunched       Lempel-Zev compression technique employed.
  315.         
  316.         "SF" is the stowage factor.  In other words, it is the percentage of 
  317.         the file length which was saved by compression.
  318.         
  319.         "Size now" is the number of bytes the file is occupying while in the 
  320.         archive.
  321.         
  322.         "Time" is the time of last modification, and is associated with the 
  323.         date of last modification.
  324.         
  325.         "CRC" is the CRC check value which has been stored with the file.  
  326.         Another CRC value will be calculated when the file is extracted or 
  327.         tested to ensure data integrity.  There is no especially good reason 
  328.         for displaying this value.
  329.         
  330.         
  331.         
  332.         BACKUP RETENTION
  333.         ----------------
  334.         
  335.         When ARC adds or deletes archive entries it renames the original 
  336.         archive to give it an extension of ".BAK", and then creates a new 
  337.         archive with the desired changes.  If you wish to retain this original 
  338.         copy of the archive for backup purposes, then add the "B" (Backup) 
  339.         command to your other commands.
  340.         
  341.         For example, if you wanted to delete all entries with an extension of 
  342.         ".DOC" from an archive named "JUNK.ARC", but you wanted to keep a copy 
  343.         around that still has them, then you could type:
  344.         
  345.             ARC bd junk *.doc
  346.         
  347.         or:
  348.         
  349.             ARC db junk *.doc
  350.         
  351.         
  352.         
  353.         MESSAGE SUPPRESION
  354.         ------------------
  355.         
  356.         ARC prints two types of messages, warnings and comments.
  357.         
  358.         Warnings are messages about suspected error conditions, such as when a 
  359.         file to be extracted already exists, or when an extracted file fails 
  360.         the CRC error check.  Warnings may be suppressed by use of the "W" 
  361.         (Warn) command.  You should use this command sparingly.  In fact, you 
  362.         should probably not use this command at all.
  363.         
  364.         Comments (or notes) are informative messages, such as naming each file 
  365.         as it is added to the archive.  Comments and notes may be suppressed 
  366.         by use of the "N" (Note) command.
  367.         
  368.         For example, suppose you extracted all files with an extension of 
  369.         ".BAS" from an archive named "JUNK.ARC"  Then, after making some 
  370.         changes which you decide not to keep, you decide that you want to 
  371.         extract them all again, but you don't want to be asked to confirm 
  372.         every one.  In this case, you could type:
  373.         
  374.             ARC xw junk *.bas
  375.         
  376.         Or, if you are going to add a hundred files with an extension of 
  377.         ".MSG" to an archive named "TRASH.ARC", and you don't want ARC to list 
  378.         them as it adds them, you could type:
  379.         
  380.             ARC an trash *.msg
  381.         
  382.         Or, if you want to extract the entire contents of an archive named 
  383.         "JUNK.ARC", and you don't want to hear anything, then type:
  384.         
  385.             ARC xnw junk
  386.         
  387.         
  388.         
  389.         TESTING AN ARCHIVE
  390.         ------------------
  391.         
  392.         The integrity of an archive may be tested by use of the "T" (Test) 
  393.         command.  This checks to make sure that all of the file headers are 
  394.         properly placed, and that all of the files are in good shape.
  395.         
  396.         This can be very useful for critical archives, where data integrity 
  397.         must be assured.  When an archive is tested, all of the entries in the 
  398.         archive are unpacked (without saving them anywhere) so that a CRC 
  399.         check value may be calculated and compared with the recorded CRC 
  400.         value.
  401.         
  402.         For example, if you just received an archive named "JUNK.ARC" over a 
  403.         phone line, and you want to make sure that you received it properly, 
  404.         you could type:
  405.         
  406.             ARC t junk
  407.         
  408.         It defeats the purpose of the T command to combine it with N or W.
  409.         
  410.         
  411.         
  412.         CONVERTING AN ARCHIVE
  413.         ---------------------
  414.         
  415.         The "C" (Convert) command is used to convert an archive entry to take 
  416.         advantage of newer compression techniques.  For example, if you had an 
  417.         archive named "JUNK.ARC", and you wanted to make sure that all files 
  418.         with an extension of ".DOC" were encoded using the very latest 
  419.         methods, you could type:
  420.         
  421.             ARC c junk *.doc
  422.         
  423.         Or if you wanted to convert every file in the archive, you could type:
  424.         
  425.             ARC c junk
  426.         
  427.         
  428.         
  429.         RAMDISK SUPPORT
  430.         ---------------
  431.         
  432.         If you have a ramdisk, or other high-speed storage, then you can speed 
  433.         up ARC somewhat by telling it to put its temporary files on the 
  434.         ramdisk.  You do this by setting the ARCTEMP environment string with 
  435.         the MS-DOS SET command.  For example, if drive B: is your ramdisk, 
  436.         then you would type:
  437.         
  438.             set ARCTEMP=B:
  439.         
  440.         Refer to the MS-DOS manual for more details about the SET command.  
  441.         You need only set the ARCTEMP string once, and ARC will use it from 
  442.         then on until you reboot or change its value.
  443.         
  444.         
  445.         
  446.         VERSION NUMBERS
  447.         ---------------
  448.         
  449.         There seems to be some confusion about our version numbering scheme.  
  450.         All of our version numbers are given as a number with two decimal 
  451.         places.
  452.         
  453.         The units indicate a major revision, such as adding a new packing 
  454.         algorythm.
  455.         
  456.         The first decimal place (tenths) indicates a minor revision that is 
  457.         not essential, but which may be desired.  
  458.         
  459.         The second decimal place (hundredths) indicates a trivial revision 
  460.         that will probably only be desired by specific individuals or by 
  461.         diehard "latest version" fanatics.
  462.         
  463.         ARC also displays its date and time of last edit.  A change of the 
  464.         date and time without a corresponding change in version number 
  465.         indicates a truly trivial change, such as fixing a spelling error.
  466.         
  467.         To sum up: If the units change, then you should get the newer version.  
  468.         If the tenths change, then you may want to get the newer version.  If 
  469.         anything else changes, then you probably shouldn't bother.  This is 
  470.         reflected by our own habit of referring to "version 4.3" instead of 
  471.         "version 4.31".
  472.         
  473.         
  474.         
  475.                                      SPECIAL NOTES
  476.                                      =============
  477.         
  478.         Whenever ARC encounters a fatal error condition it leaves the original 
  479.         archive on disk, renamed to have an extension of ".BAK" (backup).  
  480.         
  481.         The function used to calculate the CRC check value in previous 
  482.         versions has been found to be in error.  It has been replaced in 
  483.         version 3.0 with a proper function.  ARC will still read archives 
  484.         created with earlier versions of ARC, but it will report a warning 
  485.         that the CRC value is in error.  All archives created prior to version 
  486.         3.0 should be unpacked and repacked with the latest version of ARC.  
  487.         
  488.         Transmitting a file with XMODEM protocol rounds the size up to the 
  489.         next multiple of 128 bytes, adding garbage to the end of the file.  
  490.         This used to confuse ARC, causing it to think that the end of the 
  491.         archive was invalidly formatted.  This has been corrected in version 
  492.         3.03.  Older archives may still be read, but ARC may report them to be 
  493.         improperly formatted.  All files can be extracted, and no data is 
  494.         lost.  In addition, ARC will automatically correct the problem when it 
  495.         is encountered.  
  496.         
  497.         
  498.         
  499.                                  CHANGES IN VERSION 4
  500.                                  ====================
  501.         
  502.         ARC is adding another data compression technique in this version.  We 
  503.         have been looking for some technique that could improve on Huffman 
  504.         squeezing in at least a few cases.  So far, Lempel-Zev compression 
  505.         seems to be fulfilling our fondest hopes, often acheiving compression 
  506.         rates as much as 20% better than squeezing, and sometimes even better.  
  507.         Huffman squeezing depends on some bytes being more "popular" 
  508.         than others, taking the file as a whole.  Lempel-Zev compression is 
  509.         instead looking for long strings of bytes which are repeated at 
  510.         various points (such as an end of line followed by spaces for 
  511.         indentation).  Lempel-Zev compression is therefor looking for 
  512.         repetition at a more "macro" level, often acheiving impressive packing 
  513.         rates.
  514.         
  515.         Alas, nothing ever comes free.  This gain in storage efficiency comes 
  516.         at the price of processor time.  ARC version 4.0 will usually take 
  517.         about twice as long to add a file to an archive as version 3.1 did.  
  518.         We intend to work on improving this in the future, but it will always 
  519.         be slower since it must now work much harder to determine the best 
  520.         packing method.
  521.         
  522.         Fortunatly, file extraction is only slightly slower, to the point 
  523.         where it will probably go unnoticed.
  524.         
  525.         In the typical case a file is added to an archive once and then 
  526.         extracted many times, so the increased time for an update should more 
  527.         than pay for itself in increased disk space and reduced file 
  528.         transmission time.
  529.         
  530.         As usual, ARC version 4.0 is completely upward compatible.  That is, 
  531.         it can deal properly with any archive created by any earlier version 
  532.         of ARC.  It is NOT reverse compatible.  Archives created by ARC 4.0 
  533.         will generally not be usable by earlier versions of ARC.  
  534.         
  535.         
  536.         
  537.                                 CHANGES IN VERSION 4.1
  538.                                 ======================
  539.         
  540.         Version 4.1 does not contain any major changes from version 4.0.  
  541.         Lempel-Zev coding has been improved somewhat by performing non-repeat 
  542.         compression on the data before it is coded (as was already done with 
  543.         Huffman squeezing).  This has the two fold advantage of (a) reducing 
  544.         to some extent the amount of data to be encoded, and (b) increasing 
  545.         the time it takes for the string table to fill up.  Performance gains 
  546.         are small, but noticable.
  547.         
  548.         The primary changes are in internal organization.  ARC is now much 
  549.         "cleaner" inside.  In addition to the esthetic benefits to the author, 
  550.         this should make life easier for the hackers out there.  There is also 
  551.         a slight, but not noticable, improvement in overall speed when doing 
  552.         an update.
  553.         
  554.         Version 4.1 is still fully upward compatible.  But regretfully, it is 
  555.         again not downward compatible.  Version 4.1 can handle any existing 
  556.         archive, but creates archives which older versions (including 4.0) 
  557.         cannot unpack.
  558.         
  559.         
  560.         
  561.                                 CHANGES IN VERSION 4.3
  562.                                 ======================
  563.         
  564.         Version 4.3 adds the much-demanded feature of using pathnames when 
  565.         adding files to an archive.  For obscure technical reasons, files 
  566.         being extracted still go in the current directory on the current 
  567.         drive.  Pathnames are also not supported for any of the other 
  568.         commands, because it would make no sense.
  569.         
  570.         Version 4.3 is also using a slightly different approach when adding a 
  571.         file to an archive.  The end result is twofold:
  572.         
  573.         1) Slightly more disk space is required on the drive containing the 
  574.            archive.  This should only be noticeable to those creating very 
  575.            large archives on a floppy based system.  
  576.         
  577.         2) A 30% reduction in packing time has been achieved in most cases.  
  578.            This should be noticeable to everyone.  
  579.         
  580.         As always, version 4.3 is still fully upwards compatible, and is 
  581.         backwards compatible as far as version 4.1.
  582.         
  583.         
  584.         
  585.                                 CHANGES IN VERSION 4.4
  586.                                 ======================
  587.         
  588.         The temporary file introduced in version 4.3 occasionally caused 
  589.         problems for people who had not added a FILES= statement to their 
  590.         CONFIG.SYS file.  This has now been corrected.  Also, support of the 
  591.         ARCTEMP environment string was added to allow placing of the temporary 
  592.         file on a ramdisk.
  593.         
  594.         A bug was reported in the Run command, which has been fixed.  From the 
  595.         extreme time required before the bug was reported, it is deduced that 
  596.         the Run command is probably the least used feature of ARC.
  597.         
  598.         The Update command was changed.  It is no longer a straight synonym 
  599.         for Add.  Instead, Update now only adds a file if it is newer than the 
  600.         version already in the archive, as shown by the MS-DOS date/time 
  601.         stamp.
  602.         
  603.         
  604.         
  605.                               PROGRAM HISTORY AND CREDITS
  606.                               ===========================
  607.         
  608.         In its short life thus far, ARC has astounded us with its popularity.  
  609.         We first wrote it in March of 1985 because we wanted an archive 
  610.         utility that used a distributive directory approach, since this has 
  611.         certain advantages over the more popular central directory approach.  
  612.         We added automatic squeezing in version 2 at the prompting of a 
  613.         friend.  In version 2.1 we added the code to test for the best 
  614.         compression method.  Now (in October of 1985) we find that our humble 
  615.         little program has spread across the country, and seems to have become 
  616.         a new institution.  
  617.         
  618.         We are thankful for the support and appreciation we have received.  We 
  619.         hope that you find this program of use.
  620.         
  621.         
  622.         If we have acheived greatness, it is because we have stood upon the 
  623.         shoulders of giants.  Nothing is created as a thing unto itself, and 
  624.         ARC is no exception.  Therefore, we would like to give credit to the 
  625.         following people, without whose efforts ARC could not exist:
  626.         
  627.         
  628.         Brian W. Kernighan and P. J. Plauger, whose book "Software Tools" 
  629.         provided many of the ideas behind the distributive directory approach 
  630.         used by ARC.
  631.         
  632.         Dick Greenlaw, who wrote the public domain SQ and USQ programs, in 
  633.         which the Huffman squeezing algorithm was first developed.
  634.         
  635.         Robert J. Beilstein, who adapted SQ and USQ to Computer Innovations 
  636.         C86 (the language we use), thus providing us with important parts of 
  637.         our squeezing logic.
  638.         
  639.         Kent Williams, who graciously allowed us to use his LZWCOM and LZWUNC 
  640.         programs as a basis for our Lempel-Zev compression logic.
  641.         
  642.         David Schwaderer, whose article in the April 1985 issue of PC Tech 
  643.         Journal provided us with the logic for calculating the CRC 16 bit 
  644.         polynomial.
  645.         
  646.         
  647.         And many, many others whom we could not identify.
  648.